Subject: DLSw version 0.15 Chapter 7 (2 of 2)

From: "Alan K. Bartky, Manager of Technology" <[email-masked]>
Date: Tue, 1 Nov 94 16:34:22 PST

----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Content-Lines: 1
X-Sun-Content-Length: 31

This is the tenth part of 11.

----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: dlsw7b.txt
X-Sun-Content-Lines: 496
X-Sun-Content-Length: 15222

RFC XXXX      DLSw: Switch-to-Switch Protocol   October 1994

                          Bit ordering is shown below with bit
                          7 being the most significant bit and bit
                          0 the least significant bit.

                          7654 3210
                          bbbb bbbb....
                          |||| ||||
                          |||| |||SAP 0xnE enabled or not
                          |||| |||
                          |||| ||SAP 0xnC enabled or not
                          |||| ||
                          |||| |SAP 0xnA enabled or not
                          |||| |
                          |||| SAP 0xn8 enabled or not
                          ||||
                          |||SAP 0xn6 enabled or not
                          |||
                          ||SAP 0xn4 enabled or not
                          ||
                          |SAP 0xn2 enabled or not
                          |
                          SAP 0xn0 enabled or not

   An example of using all User Definable SAPs of 0x04 to 0xEC for SNA Data
   Link Switching and SAP 0xF0 for NetBIOS Data Link Switching would be as
   follows:

   Offset  SAPs          Binary       Hex

   0       4,8,C         0010 1010    0x2A
   1       10,14,18,1C   1010 1010    0xAA
   2       20,24,28,2C   1010 1010    0xAA
   3       30,34,38,3C   1010 1010    0xAA
   4       40,44,48,4C   1010 1010    0xAA
   5       50,54,58,5C   1010 1010    0xAA
   6       60,64,68,6C   1010 1010    0xAA
   7       70,74,78,7C   1010 1010    0xAA
   8       80,84,88,8C   1010 1010    0xAA
   9       90,94,98,9C   1010 1010    0xAA
   A       A0,A4,A8,AC   1010 1010    0xAA
   B       B0,B4,B8,BC   1010 1010    0xAA
   C       C0,C4,C8,CC   1010 1010    0xAA
   D       D0,D4,D8,DC   1010 1010    0xAA
   E       E0,E4,E8,EC   1010 1010    0xAA
   F       F0            1000 0000    0x80

AIW DLSw Related Interest Group           DLSw version 0.15 [Page 73]

RFC XXXX      DLSw: Switch-to-Switch Protocol   October 1994

7.5.7. TCP Connections (0x87) Control Vector

   The TCP Connections control vector indicates the support of an alternate
   number of TCP Connections for the Data Link Switching traffic.  The base
   implementation of Data Link Switching supports two TCP Connections, one
   for each direction of data traffic.

   This control vector is optional.  If it is omitted in a DLSw
   Capabilities Exchange, then two TCP Connections are assumed.  It is
   further assumed that if a Data Link  Switch can support one TCP session,
   it can support two TCP Connections.

   If TCP Connections CV values agree and the number of connections is one,
   then the  DLSw with the higher IP address must tear down the TCP
   connections on its local port 2065.

   The format of the TCP Connections Control Vector is shown below:

   Offset  Length  Value  Contents
   ------  ------  -----  --------
      0       1    0x03   Length of the TCP Connections structured
                          subfield

      1       1    0x87   key = 0x87  that identifies this as the
                          TCP Connections structured subfield

      2       1           an indicator of the support for an
                          alternate number of TCP Connections by
                          the sending Data Link Switch.
                            0x01      the number of TCP Connections
                                      may be brought down to one
                                      after Capabilities Exchange
                                      is completed.
                            0x02      the number of TCP Connections
                                      will remain at two for
                                      the duration of the DLSw
                                      connection.

7.5.8. NetBIOS Name Exclusivity (0x88) Control Vector

   The NetBIOS Name Exclusivity control vector identifies how the NetBIOS
   Name List control vector data is to be interpreted.  Specifically, this
   control vector identifies whether the NetBIOS Names in the NetBIOS Name
   List control vectors are the only ones accessible via the sending Data
   Link Switch.

   If a NetBIOS Name List control vector is specified and the NetBIOS Name
   Exclusivity control vector is missing, then the NetBIOS Names are not
   assumed to be the only  ones accessible via this switch.

   A node may specify that it supports no local NetBIOS names by including
   in its  capabilities the NetBIOS Name List Exclusivity CV (with byte 2
   == 0x01), and not including any instances of the NetBIOS Name List CV.

AIW DLSw Related Interest Group           DLSw version 0.15 [Page 74]

RFC XXXX      DLSw: Switch-to-Switch Protocol   October 1994

   Offset  Length  Value  Contents
   ------  ------  -----  --------
      0       1    0x03   Length of the Exclusivity structured
                          subfield

      1       1    0x88   key = 0x88 that identifies this as the
                          NetBIOS Name Exclusivity structured
                          subfield

      2       1           an indicator of the relationship of the
                          NetBIOS Names to the sending Data Link
                          Switch.
                            0x00     the NetBIOS Names specified in
                                     this Capabilities Exchange
                                     can be accessed via this
                                     switch but are not the
                                     exclusive set (i.e. other
                                     entities are accessible in
                                     addition to the ones specified)

                            0x01     the NetBIOS Names specified in
                                     this Capabilities Exchange
                                     are the only ones accessible
                                     via this switch.

7.5.9. MAC Address List (0x89) Control Vector

   The MAC Address List control vector identifies one or more MAC addresses
   that are accessible through the sending Data Link Switch.  This control
   vector specifies a single MAC address value and MAC address mask value
   to identify the MAC address or range of MAC addresses.  MAC addresses
   and masks are in non-canonical (Token-Ring) format in this control
   vector.

   This control vector is optional and can be repeated if necessary.

   Note 1: If a particular MAC address, <mac-addr>, satisfies the following
   algorithm, then <mac-addr> is assumed to be accessible via the sending
   Data Link Switch:

   <mac-addr> & <mac-addr-mask> == <mac-addr-value>

   where:  <mac-addr-value> is the MAC Address
                            Value specified in
                            this control vector

           <mac-addr-mask>  is the MAC Address
                            Mask specified in
                            this control vector

AIW DLSw Related Interest Group           DLSw version 0.15 [Page 75]

RFC XXXX      DLSw: Switch-to-Switch Protocol   October 1994

   Note 2:  If an individual MAC Address is desired, then <mac-addr-value>
   should be the individual MAC address and <mac-addr-mask> should be
   0xFFFFFFFFFFFF.

   Offset  Length  Value  Contents
   ------  ------  -----  --------
      0       1    0x0E   Length of the MAC Address List
                          structured subfield

      1       1    0x89   key = 0x89  that identifies this as the
                          MAC Address List structured subfield

     2-7      6           the 6-byte MAC Address Value,
                          <mac-addr-value> in the above formula

     8-13     6           the 6-byte MAC Address Mask,
                          <mac-addr-mask> in the above formula

7.5.10. NetBIOS Name List (0x8A) Control Vector

   The NetBIOS Name List control vector identifies one or more NetBIOS
   names that are accessible through the sending Data Link Switch.  This
   control vector specifies a single NetBIOS name in ASCII.  However, the
   NetBIOS name can consist of "don't care" and "wildcard" characters to
   match on a number of NetBIOS names.  If an individual character position
   in the NetBIOS name in this control vector contains a '?', then the
   corresponding character position in real NetBIOS name is a "don't care".
   If a NetBIOS name in this control vector ends in '*', then the remainder
   of real NetBIOS names is a "don't care".  '*' is only considered a
   wildcard if it appears at the end of a name.

   All blanks or nulls at the end of NetBIOS names in this control vector
   are ignored.   NetBIOS names which have fewer than 16 bytes and which do
   not end with  '*' are not assumed to have a trailing '*'; the "wildcard"
   character must be explicit.

   NetBIOS group names can exist across several LANs/networks.  As such,
   NetBIOS  group names received in a NetBIOS Name List Control Vector can
   not be treated the same as NetBIOS individual names.  The
   Individual/Group Flag allows Data  Link Switches to distinguish between
   the two.

   This control vector is optional and can be repeated if necessary.

AIW DLSw Related Interest Group           DLSw version 0.15 [Page 76]

RFC XXXX      DLSw: Switch-to-Switch Protocol   October 1994

   Offset  Length  Value  Contents
   ------  ------  -----  --------
      0       1    0xn    Length of the NetBIOS Name List
                          structured subfield (maximum = 0x13)

      1       1    0x8A   key = 0x8A  that identifies this as the
                          NetBIOS Name List structured subfield

      2       1           Individual/Group Flag
                            0x00 - Individual NetBIOS Name
                            0x01 - Group NetBIOS Name

     3-n     n-3          the NetBIOS name with possible embedded
                          '?' and terminating '*'.

7.5.11. Vendor Context (0x8B) Control Vector (++)

   The Vendor Context control vector identifies the manufacturer's IEEE
   assigned Organizationally Unique Identifier (OUI) of the Data Link
   Switch sending the DLSw Capabilities Exchange.  The OUI is sent in non-
   canonical (Token-Ring) format.

   This control vector is optional and is used to provide the context for
   any Vendor Specific control vectors that follow in the Capabilities
   Exchange.  If there are multiple instances of the Vendor Context control
   vector, the specified context remains in effect for all Vendor Specific
   control vectors until the next Vendor Context control vector is
   encountered.

      Offset  Length  Value  Contents
      ------  ------  -----  --------
         0       1    0x05   Length of the Vendor Context structured
                             subfield

         1       1    0x8B   key = 0x8B  that identifies this as the
                             Vendor Context structured subfield

        2-4      3           the 3-byte Organizationally Unique
                             Identifier (OUI) for the vendor
                             (non-canonical format)

AIW DLSw Related Interest Group           DLSw version 0.15 [Page 77]

RFC XXXX      DLSw: Switch-to-Switch Protocol   October 1994

7.6. Capabilities Exchange Responses

   There are two kinds of DLSw Capabilities Exchange Responses: positive
   and negative.  A positive response is returned to the sending Data Link
   Switch if there were no errors encountered in the DLSw Capabilities
   Exchange Request.  A negative response is returned if there is at least
   one error encountered.

   A positive DLSw Capabilities Exchange Response has the following overall
   format:

   +----+----+
   | LL | ID |
   +----+----+

   0-1    Length, in binary, of the DLSw Capabilities
          Exchange Response GDS Variable.  The value of
          LL in this case is 0x0004.

   2-3    GDS Id: 0x1521

AIW DLSw Related Interest Group           DLSw version 0.15 [Page 78]

RFC XXXX      DLSw: Switch-to-Switch Protocol   October 1994

   A negative DLSw Capabilities Exchange Response has the following overall
   format:

   +----+----+--------+--------+
   | LL | ID | Offset | Reason |
   +----+----+--------+--------+

   0-1    Length, in binary, of the DLSw Capabilities Exchange
          Response GDS Variable.  The value of LL is the sum of
          the length of all fields in the GDS Variable (i.e.
          length of LL + length of ID + length of Offsets/Reasons).

   2-3    GDS Id: 0x1522

   4-5    Offset into the DLSw Capabilities Exchange Request of the
          error.  Offset should always point to the start of the
          GDS Variable or a specific control vector.

   6-7    Reason code that uniquely identifies the error.  Specific
          values for the reason code are:

            0x0001        invalid GDS length for a DLSw Capabilities
                          Exchange Request.  (The value of Offset
                          is ignored.)

            0x0002        invalid GDS id for a DLSw Capabilities
                          Exchange Request.  (The value of Offset
                          is ignored.)

            0x0003        Vendor Id control vector is missing.  (The
                          value of Offset is ignored.)

            0x0004        DLSw Version control vector is missing. (The
                          value of Offset is ignored.)

            0x0005        Initial Pacing Window control vector is
                          missing.  (The value of Offset is ignored.)

            0x0006        length of control vectors doesn't correlate
                          to the length of the GDS variable

            0x0007        invalid control vector id

            0x0008        length of control vector invalid

            0x0009        invalid control vector data value

            0x000A        duplicate control vector (for non-repeating
                          control vectors)

            0x000B        out-of-sequence control vector (for
                          repeating control vector)

AIW DLSw Related Interest Group           DLSw version 0.15 [Page 79]

RFC XXXX      DLSw: Switch-to-Switch Protocol   October 1994

            0x000C        DLSw Supported SAP List control vector is
                          missing.
                          (The value of Offset is ignored.)

   Note:  Multiple Offset, Reason pairs can be returned with one pair for
   each error encountered.

AIW DLSw Related Interest Group           DLSw version 0.15 [Page 80]